const {
  authloginwx
} = require("../api/api")

// 检查session_key是否过期
function checkSession() {
  return new Promise((resolve, reject) => {
    // 检查登录态是否过期
    wx.checkSession({
      success() {
        //session_key 未过期，并且在本生命周期一直有效
        resolve(true)
      },
      fail() {
        // session_key 已经失效，需要重新执行登录流程
        reject(false);
      }
    })
  })
}
//获取code
function login() {
  return new Promise(function (resolve, reject) {
    //获取code
    wx.login({
      success: (res) => {
        if (res.code) {
          resolve(res);
        } else {
          reject(res);
        }
      },
      fail: (err) => {
        reject(err);
      }
    })
  })
}
//调用微信登录
function loginByWeixin(userInfo) {
  return new Promise(function (resolve, reject) {
    return login().then(res => {
      authloginwx("POST", {
        code: res.code,
        userInfo: userInfo,
      }).then(res => {
        if (res.errno === 0) {
          wx.setStorageSync('userInfo', res.data.userInfo);
          wx.setStorageSync('token', res.data.token);
          resolve(res);
        } else {
          reject(res)
        }
      }).catch(err => {
        reject(err)
      })
    }).catch(err => {
      reject(err)
    })
  })
}
//判断用户是否登录
function checkLogin() {
  return new Promise(function (resolve, reject) {
    if (wx.getStorageSync('userInfo') && wx.getStorageSync('token')) {
      checkSession().then(() => {
        resolve(true);
      }).catch(() => {
        reject(false);
      });
    } else {
      reject(false);
    }
  })
}



module.exports = {
  loginByWeixin,
  checkLogin,
  login
};